<?php
/**
 * Created by jian
 * User: admin
 * Date: 2018/12/31
 * Time: 1:46
 */

namespace app\common\model;


use think\Exception;

class Ip
{
    /*通过360搜索获取ip位置信息
     * */
    public function findBy360So($ip){
        $url ='https://m.so.com/position?ip='.$ip;
        $curlRet =Curl::Curl( $url,'',true);
        if($curlRet['status']!=200){
            return array('error'=>1,'msg'=>'通过360搜索获取ip地址错误,当前接口不可用');
        }

        $ipDataArr = json_decode($curlRet['data'],true);

        if(!isset($ipDataArr['data'])||!isset($ipDataArr['data']['position'])){
            return array('error'=>1,'msg'=>'通过360搜索获取的ip地理位置信息错误');
        }

        return array('error'=>0,'msg'=>'获取成功','data'=>$ipDataArr['data']);
    }


    /*通过百度地图获取ip位置信息，只能定位国内的,可以多搞几个ak
     * */
    public function findByBaiduMap($ip,$ak='abDsBedrGw46lo1CyQuwZs9magjV5gSf'){
        $url ='http://api.map.baidu.com/location/ip?ip='.$ip.'&ak='.$ak.'&coor=';
        $curlRet =Curl::Curl( $url,'',true);
        if($curlRet['status']!=200){
            return array('error'=>1,'msg'=>'通过百度地图获取ip地址错误,当前接口不可用');
        }
        $ipDataArr = json_decode($curlRet['data'],true);
        if(!isset($ipDataArr['address'])){
            return array('error'=>1,'msg'=>'通过百度地图获取的ip地理位置信息错误');
        }
        return array('error'=>0,'msg'=>'获取成功','data'=>$ipDataArr);
    }

    /*通过淘宝获取ip位置信息
    * */
    public function findByTaobao($ip){
        $url ='http://ip.taobao.com/service/getIpInfo.php?ip='.$ip;
        $curlRet =Curl::Curl( $url,'',true);
        if($curlRet['status']!=200){
            return array('error'=>1,'msg'=>'通过淘宝获取ip地址错误,当前接口不可用');
        }
        $ipDataArr = json_decode($curlRet['data'],true);

        if(!isset($ipDataArr['data'])){
            return array('error'=>1,'msg'=>'通过淘宝获取的ip地理位置信息错误');
        }

        return array('error'=>0,'msg'=>'获取成功','data'=>$ipDataArr['data']);
    }

    /*通过太平洋电脑查询
    *
     * */
    public function findByPconline($ip){
        $url ='http://whois.pconline.com.cn/ipJson.jsp?ip='.$ip.'&json=true';
        $curlRet =Curl::Curl( $url,'',true);
        if($curlRet['status']!=200){
            return array('error'=>1,'msg'=>'通过太平洋电脑获取ip地址错误,当前接口不可用');
        }
        $ipDataArr = json_decode($curlRet['data'],true);
        if(!isset($ipDataArr['addr'])||empty($ipDataArr['addr'])){
            return array('error'=>1,'msg'=>'通过太平洋电脑获取ip地址错误,获取的信息不全');
        }
        return array('error'=>0,'msg'=>'获取成功','data'=> $ipDataArr);
    }

    /*http://ip-api.com(牛逼接口)
     *$lang,en,de,es Español (Spanish),pt-BR Español - Argentina (Spanish),fr,ja 日本語 (Japanese),zh-CN 中国 (Chinese),ru Русский (Russian)
      * */
    public function findByIpapi($ip,$lang='zh-CN'){
        $url ='http://ip-api.com/json/'.$ip.'?lang='.$lang;
        $curlRet =Curl::Curl( $url,'');
        if($curlRet['status']!=200){
            return array('error'=>1,'msg'=>'通过ip-api获取ip地址错误,当前接口不可用');
        }

        $ipDataArr = json_decode($curlRet['data'],true);

        if($ipDataArr['status']!='success'){
            return array('error'=>1,'msg'=>'通过ip-api获取ip地址错误,'.$ipDataArr['message']);
        }

        if(!isset($ipDataArr['country'])){
            return array('error'=>1,'msg'=>'通过ip-api获取的ip地理位置信息错误');
        }

        return array('error'=>0,'msg'=>'获取成功','data'=>$ipDataArr);
    }




}